package net.linku.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Objects;

/**
 * StatusEnum 枚举类表示实体的状态。
 * 该类包含了两种状态：NORMAL 和 DELETED。
 * 每种状态都有一个整数值和一个描述字符串。
 *
 * @author: SilenceTian
 * @date: 2024/7/12
 * @version: 1.0
 */
@Getter
@AllArgsConstructor
public enum StatusEnum {

    /**
     * 未删除状态，值为0。
     */
    NORMAL(0, "未删除"),

    /**
     * 已删除状态，值为1。
     */
    DELETED(1, "已删除");

    /**
     * 状态的整数值。
     */
    private final Integer deletedFlag;

    /**
     * 状态的描述字符串。
     */
    private final String description;

    /**
     * 通过数字获取枚举
     *
     * @param status 状态
     * @return 枚举
     */
    public static StatusEnum of(Integer status) {
        for (StatusEnum value : values()) {
            if (Objects.equals(value.deletedFlag, status)) {
                return value;
            }
        }
        return null;
    }
}
